﻿<html DIR="LTR" xmlns:tool="http://www.microsoft.com/tooltip" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8" />
    <META NAME="save" CONTENT="history" />
    <title>Operação de rastreamento de driver</title>
    
    <link rel="stylesheet" type="text/css" href="../local/Classic.css">
      
    </link>
    
    <script src="../local/script.js">
      
    </script><script src="../local/script_main.js">&amp;nbsp;</script>
  </head>
  <body>
    <!--Topic built:04/01/2010 05:03:30-->

    
    
    
    
    
    
    
    
    
    <div id="header">
      <table width="100%" id="topTable"><tr>
          <td align="left">
            <span id="headerBold">Operação de rastreamento de driver</span>
          </td>
          <td align="right">
            
          </td>
        </tr></table>
      
      
      
    </div>
    <div id="mainSection">
      
        
        
    <font color="DarkGray">
      
    </font>
    <p />
    
    <p />
  
        <div id="introductionSection" class="section">
    <p>O Microsoft SQL Server JDBC Driver dá suporte ao uso de rastreamento (ou log) para ajudar a resolver problemas com o driver JDBC quando ele é usado em seu aplicativo. Para habilitar o uso de rastreamento, o driver JDBC usa as APIs de log no java.util.logging, que fornece um conjunto de classes para criar objetos <b>Logger</b> e <b>LogRecord</b>.</p>
    <div style="margin: .5em 1.5em .5em 1.5em"><b>Observação: </b>
      Para o componente nativo (sqljdbc_xa.dll) que está incluído com o driver JDBC, o rastreamento é habilitado pela estrutura de Diagnósticos Internos (BID). Para obter mais informações sobre BID, consulte <a href="http://go.microsoft.com/fwlink/?LinkId=70042" target="_blank" alt=""><linkText xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">Rastreamento do acesso a dados no SQL Server</linkText></a>. <p />
    </div>
    <p>Ao desenvolver um aplicativo, você faz chamadas para objetos <b>Logger</b>, que, por sua vez, criam objetos <b>LogRecord</b>, que são então passados para objetos <b>Handler</b> para processamento. Os objetos <b>Logger</b> e <b>Handler</b> usam níveis de log e, opcionalmente filtros de log, para regular quais <b>LogRecords</b> serão processados. Quando as operações de log estiverem concluídas, os objetos <b>Handler</b> podem usar objetos <b>Formatter</b> como opção para publicar as informações de log.</p>
    <p>Por padrão, a estrutura do java.util.logging grava sua saída em um arquivo. Este arquivo de log de saída deve ter permissões de gravação para o contexto sob o qual o driver JDBC está executando.</p>
    <div style="margin: .5em 1.5em .5em 1.5em"><b>Observação: </b>
      Para obter mais informações sobre como usar os vários objetos de log para rastreamento de programa, consulte a documentação do <a href="http://go.microsoft.com/fwlink/?LinkId=57239" target="_blank" alt=""><linkText xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">Java Logging APIs</linkText></a> no site da Sun Microsystems.<p />
    </div>
    <p>As seções a seguir descrevem os níveis de log e as categorias que podem ser registradas em log, e fornecem informações sobre como habilitar rastreamento em seu aplicativo.</p>
  </div><h1 class="heading">Níveis de log</h1><div id="sectionSection0" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Toda mensagem de log que é criada tem um nível de log associado. O nível de log determina a importância da mensagem de log, que é definida pela classe <b>Level</b> em java.util.logging. Habilitar log em um nível também habilita log em todos os níveis mais altos. Esta seção descreve os níveis de log para categorias de log públicas e categorias de log internas. Para obter mais informações sobre categorias de log, consulte a seção Categorias de log neste tópico.</p>
      <p xmlns="">A tabela a seguir descreve cada nível de log disponível para categorias de log públicas.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              Nome
            </th>
            <th>
              Descrição
            </th>
          </tr><tr>
          <td>
            <p>SEVERE</p>
          </td>
          <td>
            <p>Indica uma falha séria e é o nível mais alto de log. No driver JDBC, este nível é usado para relatar erros e exceções.</p>
          </td>
        </tr><tr>
          <td>
            <p>WARNING</p>
          </td>
          <td>
            <p>Indica um problema potencial.</p>
          </td>
        </tr><tr>
          <td>
            <p>INFO</p>
          </td>
          <td>
            <p>Fornece mensagens informativas.</p>
          </td>
        </tr><tr>
          <td>
            <p>CONFIG</p>
          </td>
          <td>
            <p>Fornece mensagens de configuração. Observe que o driver JDBC atualmente não fornece nenhuma mensagem de configuração.</p>
          </td>
        </tr><tr>
          <td>
            <p>FINE</p>
          </td>
          <td>
            <p>Fornece informações básicas de rastreamento inclusive todas as exceções lançadas pelos métodos públicos.</p>
          </td>
        </tr><tr>
          <td>
            <p>FINER</p>
          </td>
          <td>
            <p>Fornece informações de rastreamento detalhadas inclusive todas as entradas de método público e pontos de saída com tipos de dados de parâmetro associados e todas as propriedades públicas para classes públicas. Além disso, parâmetros de entrada, parâmetros de saída e valores de retorno de método exceto tipos de valores de retorno CLOB, BLOB, NCLOB, Reader, &lt;stream&gt;. </p>
          </td>
        </tr><tr>
          <td>
            <p>FINEST</p>
          </td>
          <td>
            <p>Fornece informações de rastreamento altamente detalhadas. Este é o nível mais baixo de log.</p>
          </td>
        </tr><tr>
          <td>
            <p>OFF</p>
          </td>
          <td>
            <p>Desliga o log.</p>
          </td>
        </tr><tr>
          <td>
            <p>ALL</p>
          </td>
          <td>
            <p>Habilita log de todas as mensagens.</p>
          </td>
        </tr></table>
      <p xmlns="">A tabela a seguir descreve cada nível de log disponível para as categorias de log internas.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              Nome
            </th>
            <th>
              Descrição
            </th>
          </tr><tr>
          <td>
            <p>SEVERE</p>
          </td>
          <td>
            <p>Indica uma falha séria e é o nível mais alto de log. No driver JDBC, este nível é usado para relatar erros e exceções. </p>
          </td>
        </tr><tr>
          <td>
            <p>WARNING</p>
          </td>
          <td>
            <p>Indica um problema potencial.</p>
          </td>
        </tr><tr>
          <td>
            <p>INFO</p>
          </td>
          <td>
            <p>Fornece mensagens informativas.</p>
          </td>
        </tr><tr>
          <td>
            <p>FINE</p>
          </td>
          <td>
            <p>Fornece informações de rastreamento que incluem criação e destruição básicas de objeto. Além disso, todas as exceções lançadas pelos métodos públicos.</p>
          </td>
        </tr><tr>
          <td>
            <p>FINER</p>
          </td>
          <td>
            <p>Fornece informações de rastreamento detalhadas inclusive todas as entradas de método público e pontos de saída com tipos de dados de parâmetro associados e todas as propriedades públicas para classes públicas. Além disso, parâmetros de entrada, parâmetros de saída e valores de retorno de método exceto tipos de valores de retorno CLOB, BLOB, NCLOB, Reader, &lt;stream&gt;.</p>
            <p>As categorias de log a seguir existiam na versão 1.2 do driver JDBC e tinham o nível de log FINE: <a href="937292a6-1525-423e-a2b2-a18fd34c2893.htm">SQLServerConnection</a>, <a href="ec24963c-8b51-4838-91e9-1fbfa2347451.htm">SQLServerStatement</a>, XA e <a href="097434fd-2b74-411c-a5ed-eba04481dde5.htm">SQLServerDataSource</a>. Desde a versão 2.0, estes são atualizados para o nível FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>FINEST</p>
          </td>
          <td>
            <p>Fornece informações de rastreamento altamente detalhadas. Este é o nível mais baixo de log.</p>
            <p>As categorias de log a seguir existiam na versão 1.2 do driver JDBC e tinham o nível de log FINEST: TDS.DATA e TDS.TOKEN. Desde a versão 2.0, eles mantêm o nível de log FINEST. </p>
          </td>
        </tr><tr>
          <td>
            <p>OFF</p>
          </td>
          <td>
            <p>Desliga o log.</p>
          </td>
        </tr><tr>
          <td>
            <p>ALL</p>
          </td>
          <td>
            <p>Habilita log de todas as mensagens.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Categorias de log</h1><div id="sectionSection1" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Ao criar um objeto <b>Logger</b>, você deve dizer a ele de qual entidade ou categoria nomeada você está interessado em obter informações de log. O driver JDBC suporta as categorias de log públicas a seguir, que estão todas definidas no pacote do driver com.microsoft.sqlserver.jdbc.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              Nome
            </th>
            <th>
              Descrição
            </th>
          </tr><tr>
          <td>
            <p>Connection</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="937292a6-1525-423e-a2b2-a18fd34c2893.htm">SQLServerConnection</a>. Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>Instrução</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="ec24963c-8b51-4838-91e9-1fbfa2347451.htm">SQLServerStatement</a>. Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>DataSource</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="097434fd-2b74-411c-a5ed-eba04481dde5.htm">SQLServerDataSource</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>ResultSet</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="eaffcff1-286c-459f-83da-3150778480c9.htm">SQLServerResultSet</a>. Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>Driver</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="fbdceae5-7e7b-4edb-8c33-c701ca6b2d53.htm">SQLServerDriver</a>. Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr></table>
      <p xmlns="">A partir do Microsoft JDBC Driver versão 2.0, o driver também fornece o pacote com.microsoft.sqlserver.jdbc.internals, que inclui o suporte de log para as categorias de log internas a seguir.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              Nome
            </th>
            <th>
              Descrição
            </th>
          </tr><tr>
          <td>
            <p>AuthenticationJNI</p>
          </td>
          <td>
            <p>Registra mensagens referentes a problemas de autenticação integrada do Windows.</p>
            <p>Os aplicativos podem definir o nível de log como FINEST e FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerConnection</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="937292a6-1525-423e-a2b2-a18fd34c2893.htm">SQLServerConnection</a>. Os aplicativos podem definir o nível de log como FINE e FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerDataSource</p>
          </td>
          <td>
            <p>Registra mensagens nas classes <a href="097434fd-2b74-411c-a5ed-eba04481dde5.htm">SQLServerDataSource</a>, <a href="b00e5a90-2af7-4d04-8ef8-256183777dcf.htm">SQLServerConnectionPoolDataSource</a> e <a href="4c87e9d3-904a-4b86-90cc-3684034c86ee.htm">SQLServerPooledConnection</a>. </p>
            <p>Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>InputStream</p>
          </td>
          <td>
            <p>Registra mensagens relativas aos seguintes tipos de dados: java.io.InputStream, java.io.Reader e os tipos de dados que têm um especificador max como tipos de dados varchar, nvarchar e varbinary.</p>
            <p>Os aplicativos podem definir o nível de log como FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerException</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="af5ef257-7cf6-4db3-b1ee-07d22d82bef1.htm">SQLServerException</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerResultSet</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="eaffcff1-286c-459f-83da-3150778480c9.htm">SQLServerResultSet</a>. Os aplicativos podem definir o nível de log como FINE, FINER e FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerStatement</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="ec24963c-8b51-4838-91e9-1fbfa2347451.htm">SQLServerStatement</a>. Os aplicativos podem definir o nível de log como FINE, FINER e FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>XA</p>
          </td>
          <td>
            <p>Registra mensagens para todas as transações XA na classe <a href="95fc7b07-2498-4a7e-8f7f-ee0d86b598b4.htm">SQLServerXADataSource</a>. Os aplicativos podem definir o nível de log como FINE e FINER.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.DATA</p>
          </td>
          <td>
            <p>Registra mensagens que contêm a conversa no nível do protocolo TDS entre o driver e o SQL Server. O conteúdo detalhado de cada pacote TDS enviado e recebido é registrado em ASCII e hexadecimal. As credenciais de logon (nomes de usuários e senhas) não são registradas. Todos os outros dados são registrados. </p>
            <p>Esta categoria cria mensagens muito detalhadas e detalhadas, e só poderá ser habilitada definindo o nível de registro como FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.Channel</p>
          </td>
          <td>
            <p>Esta categoria rastreia ações do canal de comunicação TCP com SQL Server. As mensagens registradas incluem abertura e fechamento de soquete, além de leituras e gravações. Elas também rastreiam mensagens relacionadas a estabelecer uma conexão de Protocolo SSL (SSL) com SQL Server.</p>
            <p>Esta categoria só poderá ser habilitada definindo o nível de log como FINE, FINER ou FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.Writer</p>
          </td>
          <td>
            <p>Esta categoria rastreia gravações no canal de TDS. Observe que somente o comprimento das gravações é rastreado, não o conteúdo. Esta categoria também rastreia problemas quando um sinal de atenção é enviado ao servidor para cancelar a execução de uma instrução.</p>
            <p>Esta categoria só poderá ser habilitada definindo o nível de log como FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.Reader</p>
          </td>
          <td>
            <p>Esta categoria rastreia determinadas operações de leitura do canal de TDS no nível FINEST. No nível FINEST, o rastreamento pode ser bastante detalhado. Nos níveis WARNING e SEVERE, esta categoria rastreia quando o driver recebe um protocolo TDS inválido do SQL Server antes de o driver fechar a conexão. </p>
            <p>Esta categoria só poderá ser habilitada definindo o nível de log como FINER e FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.Command</p>
          </td>
          <td>
            <p>Esta categoria rastreia transições de estado de baixo nível e outras informações associadas à execução de comandos TDS, como, por exemplo, execuções de instrução de T-SQL, buscas do cursor ResultSet, confirmações e assim por diante.</p>
            <p>Esta categoria só poderá ser habilitada definindo o nível de log como FINEST.</p>
          </td>
        </tr><tr>
          <td>
            <p>TDS.TOKEN</p>
          </td>
          <td>
            <p>Esta categoria registra somente os tokens dentro dos pacotes TDS e é menos detalhada que a categoria TDS.DATA. Ela só poderá ser habilitada definindo o nível de log como FINEST.</p>
            <p>No nível FINEST, esta categoria rastreia tokens de TDS à medida que eles são processados na resposta. No nível SEVERE, esta categoria rastreia quando um token de TDS inválido é encontrado. </p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerDatabaseMetaData</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="8b8049d0-8c6d-4476-866b-098709f37eec.htm">SQLServerDatabaseMetaData</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerResultSetMetaData</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="9a36885f-83f3-44af-85f0-2b849dfd20d4.htm">SQLServerResultSetMetaData</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerParameterMetaData</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="546290e0-9411-4a2b-aa36-61251e70e9cf.htm">SQLServerParameterMetaData</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerBlob</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="88bd8623-889d-4b5d-99ff-c85b32f3ff5c.htm">SQLServerBlob</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerClob</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="24170524-e1ab-4e80-8fd1-6688efacfbde.htm">SQLServerClob</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerSQLXML</p>
          </td>
          <td>
            <p>Registra mensagens na classe <b>SQLServerSQLXML</b> interna. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerDriver</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="fbdceae5-7e7b-4edb-8c33-c701ca6b2d53.htm">SQLServerDriver</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr><tr>
          <td>
            <p>SQLServerNClob</p>
          </td>
          <td>
            <p>Registra mensagens na classe <a href="3d3883a2-c39c-439f-bbc0-01e73968672b.htm">SQLServerNClob</a>. Os aplicativos podem definir o nível de log como FINE.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Habilitando o rastreamento programaticamente</h1><div id="sectionSection2" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">O rastreamento pode ser habilitado programaticamente criando um objeto <b>Logger</b> e indicando a categoria a ser registrada. Por exemplo, o código a seguir mostra como habilitar log para instruções SQL:</p>
      <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.Statement");
logger.setLevel(Level.FINER);</pre></span></div>
      <p xmlns="">Para desabilitar log no seu código, use o seguinte:</p>
      <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>logger.setLevel(Level.OFF);</pre></span></div>
      <p xmlns="">Para registrar todas as categorias disponíveis, use o seguinte:</p>
      <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc");
logger.setLevel(Level.FINE);</pre></span></div>
      <p xmlns="">Para desabilitar uma categoria específica de ser registrada, use o seguinte:</p>
      <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.Statement");
logger.setLevel(Level.OFF);</pre></span></div>
    </content></div><h1 class="heading">Habilitando rastreamento usando o arquivo Logging.Properties</h1><div id="sectionSection3" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Você também pode habilitar rastreamento usando o arquivo<code> logging.properties </code>, que está localizado no diretório<code> lib </code>da instalação do Java Runtime Environment (JRE). Este arquivo poderá ser usado para definir os valores padrão para agentes e manipuladores que serão usados quando o rastreamento for habilitado.</p>
      <p xmlns="">Veja a seguir um exemplo das configurações que você pode fazer nos arquivos <code>logging.properties</code>:</p>
      <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>   # Specify the handlers to create in the root logger
   # (all loggers are children of the root logger).
   # The following creates two handlers.
   handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

   # Set the default logging level for the root logger.
   .level = OFF

   # Set the default logging level for new ConsoleHandler instances.
   java.util.logging.ConsoleHandler.level = FINE

   # Set the default logging level for new FileHandler instances.
   java.util.logging.FileHandler.level = OFF

   # Set the default formatter for new ConsoleHandler instances.
   java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

   # Set the default logging level for the logger named ConnectionPool.
   ConnectionPool.level = OFF</pre></span></div>
      <div style="margin: .5em 1.5em .5em 1.5em" xmlns=""><b>Observação: </b>
        Você pode definir as propriedades no arquivo<code> logging.properties </code>usando o objeto <b>LogManager</b> que faz parte de java.util.logging.<p />
      </div>
    </content></div><span id="seeAlsoSpan"><h1 class="heading">Consulte também</h1></span><div id="seeAlsoSection" class="section" name="collapseableSection"><a href="723e2680-a0c5-4a7d-a319-1e49e41078cf.htm">Diagnosticando problemas com o JDBC Driver</a><br /><br /></div><!--[if gte IE 5]>
			<tool:tip element="seeAlsoToolTip" avoidmouse="false"/><tool:tip element="languageFilterToolTip" avoidmouse="false"/><tool:tip element="roleInfoSpan" avoidmouse="false"/>
		<![endif]-->
      <div id="footer" class="section">
        
		<hr />
		
		<span id="fb" class="feedbackcss">
			
			
		</span>
		
		<a href="9bad553b-9e70-4696-8499-2e35f772a1e0.htm">
			
			© 2010 Microsoft Corporation. Todos os direitos reservados.
		</a>
 	
	
      </div>
    </div>
  </body>
</html>